package com.jr.mapper;

import com.jr.pojo.Vehicles;
import com.jr.vo.FixedManageVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 车辆信息Mapper接口
 */
@Mapper
public interface VehiclesMapper {
    
    /**
     * 插入车辆信息
     * 自动处理：id（自增）、type（设置为0）、createdAt（当前时间）
     * 不传入：userId、updatedAt
     * @param vehicles 车辆信息对象，包含plateNumber、ownerName、phone
     * @return 插入的车辆id
     */
    Integer insertVehicle(Vehicles vehicles);
    
    /**
     * 分页模糊查询固定车辆信息
     * @param plateNumber 车牌号（模糊查询）
     * @param ownerName 车主姓名（模糊查询）
     * @param status 状态（0表示当前有效，1表示已过期）
     * @return 查询结果列表
     */
    List<FixedManageVo> findFixedVehiclesByPage(
            @Param("plateNumber") String plateNumber,
            @Param("ownerName") String ownerName,
            @Param("status") Integer status
    );
    
    /**
     * 查询固定车辆信息总数（用于分页）
     * @param plateNumber 车牌号（模糊查询）
     * @param ownerName 车主姓名（模糊查询）
     * @param status 状态（0表示当前有效，1表示已过期）
     * @return 符合条件的记录总数
     */
    Integer countFixedVehicles(
            @Param("plateNumber") String plateNumber,
            @Param("ownerName") String ownerName,
            @Param("status") Integer status
    );
}